<!DOCTYPE html>
<html lang="ja">

<head>
  <meta charset="utf-8">
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta http-equiv="Content-Style-Type" content="text/css">
  <script src='../bbs.js'></script>

  <!-- Global site tag (gtag.js) - Google Analytics -->
  <script async src="https://www.googletagmanager.com/gtag/js?id=UA-120820034-1"></script>

  <link href="../bbs.css" type="text/css" rel="stylesheet">
  <link rel="shortcut icon" href="/favicon.ico">
  <title>クリップボード UNICODE TEXT 対応 | サクラエディタ過去ログ</title>
</head>
<body>
<ul class="side">
        <a href="./" class="toindex">◀ANSI版開発トップへ</a>
        <li><div class="list-title">
    <span class="no">3934</span>
    <a class="thread-title" href="3934.html#3934">クリップボード UNICODE TEXT 対応</a></div>
    <ul><li><div class="list-title">
    <span class="no">3935</span>
    <a class="thread-title" href="3934.html#3935">Re:クリップボード UNICODE TEXT 対応</a></div>
    <ul><li><div class="list-title">
    <span class="no">3936</span>
    <a class="thread-title" href="3934.html#3936">Re2:クリップボード UNICODE TEXT 対応</a></div>
    <ul><li><div class="list-title">
    <span class="no">3939</span>
    <a class="thread-title" href="3934.html#3939">Re3:クリップボード UNICODE TEXT 対応</a></div>
    <ul><li><div class="list-title">
    <span class="no">3946</span>
    <a class="thread-title" href="3934.html#3946">Re4:クリップボード UNICODE TEXT 対応</a></div>
    <ul><li><div class="list-title">
    <span class="no">3953</span>
    <a class="thread-title" href="3934.html#3953">Re5:クリップボード UNICODE TEXT 対応</a></div>
    <ul><li><div class="list-title">
    <span class="no">3954</span>
    <a class="thread-title" href="3934.html#3954">Re6:クリップボード UNICODE TEXT 対応</a></div>
    <ul><li><div class="list-title">
    <span class="no">3955</span>
    <a class="thread-title" href="3934.html#3955">Re7:クリップボード UNICODE TEXT 対応</a></div>
    <ul><li><div class="list-title">
    <span class="no">3956</span>
    <a class="thread-title" href="3934.html#3956">Re8:クリップボード UNICODE TEXT 対応</a></div>
    </li></ul></li></ul></li><li><div class="list-title">
    <span class="no">3963</span>
    <a class="thread-title" href="3934.html#3963">Re6:クリップボード UNICODE TEXT 対応</a></div>
    <ul><li><div class="list-title">
    <span class="no">3965</span>
    <a class="thread-title" href="3934.html#3965">Re7:クリップボード UNICODE TEXT 対応</a></div>
    <ul><li><div class="list-title">
    <span class="no">3967</span>
    <a class="thread-title" href="3934.html#3967">Re8:クリップボード UNICODE TEXT 対応</a></div>
    <ul><li><div class="list-title">
    <span class="no">3968</span>
    <a class="thread-title" href="3934.html#3968">Re9:クリップボード UNICODE TEXT 対応</a></div>
    </li><li><div class="list-title">
    <span class="no">3969</span>
    <a class="thread-title" href="3934.html#3969">Re9:クリップボード UNICODE TEXT 対応</a></div>
    </li></ul></li><li><div class="list-title">
    <span class="no">3991</span>
    <a class="thread-title" href="3934.html#3991">Re8:クリップボード UNICODE TEXT 対応</a></div>
    </li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li>
    </ul><ul class="main"><li><section><h1 id=3934>
    <span class="no">[3934]</span>
    <a class="thread-title" href="#3934">クリップボード UNICODE TEXT 対応</a>
    <span class="author">novice</span>
    <time datetime="2005-05-28T21:52:44">2005年05月28日 21:52</time></h1>
    <div class="body">「Cygwin/X」で「XWin.exe -clipboard」と起動後に、X上でテキストをコピーしてからサクラエディタに貼り付けると、「????」と表示されてしまうのを修正しました。<br><br>変更対象ファイル<br>ssrc_2005-04-29.tar.bz2<br><br>差分ファイル<br>diff_ssrc_2005-04-29.zip<br></div></section>
    <ul><li><section><h1 id=3935>
    <span class="no">[3935]</span>
    <a class="thread-title" href="#3935">Re:クリップボード UNICODE TEXT 対応</a>
    <span class="author">novice</span>
    <time datetime="2005-05-29T14:41:16">2005年05月29日 14:41</time></h1>
    <div class="body">▼ noviceさん<br>&gt; 「Cygwin/X」で「XWin.exe -clipboard」と起動後に、X上でテキストをコピーしてからサクラエディタに貼り付けると、「????」と表示されてしまうのを修正しました。<br><br>クリップボードからのデータ長の取得処理が間違っていたので、差分ファイルを修正しました。<br><br>差分ファイル<br>diff_ssrc_2005-04-29a.zip<br></div></section>
    <ul><li><section><h1 id=3936>
    <span class="no">[3936]</span>
    <a class="thread-title" href="#3936">Re2:クリップボード UNICODE TEXT 対応</a>
    <span class="author">もか</span>
    <time datetime="2005-05-29T19:56:24">2005年05月29日 19:56</time></h1>
    <div class="body">SAKURAClip<br>CF_UNICODETEXT<br>CF_OEMTEXT<br>の順に優先して張り付けるんですよね。<br><br>これだと、シフトJIS拡張のNEC選定とIBM選定文字(丸付き数字などなど)を区別できなくなったり、<br>そもそも、CF_UNICODETEXTとCF_OEMTEXTの内容がエンコードの違い以上に異なってる場合(ACCESS等)があったり、<br>運用上問題になってしまう事もあるかもしれません。<br><br>私のHPにも、[実験用]－[クリップボードとD&amp;D周りの修正]<br>というのを放置してあるのですが、これは実装がいまいちです。。。<br></div></section>
    <ul><li><section><h1 id=3939>
    <span class="no">[3939]</span>
    <a class="thread-title" href="#3939">Re3:クリップボード UNICODE TEXT 対応</a>
    <span class="author">novice</span>
    <time datetime="2005-06-01T23:44:02">2005年06月01日 23:44</time></h1>
    <div class="body">▼ もかさん<br>&gt; "SAKURAClip"<br>&gt; CF_UNICODETEXT<br>&gt; CF_OEMTEXT<br>&gt; の順に優先して張り付けるんですよね。<br>はい。その通りです。<br><br>&gt; これだと、シフトJIS拡張のNEC選定とIBM選定文字(丸付き数字などなど)を区別できなくなったり、<br>&gt; そもそも、CF_UNICODETEXTとCF_OEMTEXTの内容がエンコードの違い以上に異なってる場合(ACCESS等)があったり、<br>&gt; 運用上問題になってしまう事もあるかもしれません。<br>ご指摘ありがとうございます。<br>今回のパッチの問題をまとめると、<br><br>・パッチを適用する。<br>「Cygwin/X」で漢字のコピー＆ペーストができる。<br>UNICODE → SJIS変換するので問題あり。<br><br>・パッチを適用しない。<br>「Cygwin/X」で漢字のコピー＆ペーストができない。<br>UNICODE → SJIS変換しないので問題なし。<br><br>ということになります。<br>ちなみに、ほかのエディタで確認(「Cygwin/X」で漢字のコピー＆ペースト)してみましたが、<br><br>秀丸 4.17 ... OK<br>K2Editor r.1.4.31 ... NG<br>TeraPad 0.89 ... NG<br>xyzzy 0.2.2.234 ... OK<br><br>となってました。<br>どっちがいいのか微妙なところです。<br></div></section>
    <ul><li><section><h1 id=3946>
    <span class="no">[3946]</span>
    <a class="thread-title" href="#3946">Re4:クリップボード UNICODE TEXT 対応</a>
    <span class="author">もか</span>
    <time datetime="2005-06-12T22:29:19">2005年06月12日 22:29</time></h1>
    <div class="body">&gt;どっちがいいのか微妙なところです。<br>ちょっとwebで調べただけなので、外してるかもしれませんけど<br>「Cygwin/X」に関して言えば、XwinClipのバグ・制限なのではないですか。<br>自分で言っておいてなんですが、<br>Unicode形式が利用できるのは2k/XPだけで、そのXp/2Kのメモ帳などは元々シフトJIS拡張文字が区別できないものの、そこまで問題になっているとは聞きません。<br>　他にも、キーボードレイアウトが日本語でないときに、???に化ける問題。<br>　AccessのOEMTEXTが切れる問題。<br>このあたりをトータルで考えるとUnicode対応してくれた方が、幸せになる人は多そうな気がします。<br><br>また最終的には、<br>&gt;&gt;dev:4244 みくさん提案 クリップボード形式を指定して貼り付け<br>のような機構を実装する以外に両方の問題を解決する方法はないと思っています。<br></div></section>
    <ul><li><section><h1 id=3953>
    <span class="no">[3953]</span>
    <a class="thread-title" href="#3953">Re5:クリップボード UNICODE TEXT 対応</a>
    <span class="author">novice</span>
    <time datetime="2005-06-18T16:36:24">2005年06月18日 16:36</time></h1>
    <div class="body">▼ もかさん<br>&gt; ちょっとwebで調べただけなので、外してるかもしれませんけど<br>&gt; 「Cygwin/X」に関して言えば、XwinClipのバグ・制限なのではないですか。<br>ご指摘の通り、「XWin.exe」の変換に問題あるように思います。<br><br>&gt; このあたりをトータルで考えるとUnicode対応してくれた方が、幸せになる人は多そうな気がします。<br>Unicode→SJIS変換はサクラエディタに内蔵しているので、Unicodeデータはサクラエディタ側で変換したほうが統一感があるように思います。<br>特に反対意見がなければ、今回の機能をマージして頂ければと思います。<br><br>&gt; また最終的には、<br>&gt; &gt;&gt;dev:4244 みくさん提案 クリップボード形式を指定して貼り付け<br>&gt; のような機構を実装する以外に両方の問題を解決する方法はないと思っています。<br>Officeにも「編集」-「形式を選択して貼り付け」というのがあるので、サクラエディタで実装する場合、それと似たようなインタフェースにすれば、違和感なく使ってもらえるように思います。<br></div></section>
    <ul><li><section><h1 id=3954>
    <span class="no">[3954]</span>
    <a class="thread-title" href="#3954">Re6:クリップボード UNICODE TEXT 対応</a>
    <span class="author">げんた</span>
    <time datetime="2005-06-18T16:52:23">2005年06月18日 16:52</time></h1>
    <div class="body">&gt;特に反対意見がなければ、今回の機能をマージして頂ければと思います。<br>ああ，タッチの差でリリースしてしまった．<br></div></section>
    <ul><li><section><h1 id=3955>
    <span class="no">[3955]</span>
    <a class="thread-title" href="#3955">Re7:クリップボード UNICODE TEXT 対応</a>
    <span class="author">Uchi</span>
    <time datetime="2005-06-18T20:19:29">2005年06月18日 20:19</time></h1>
    <div class="body">Sakura Editor を仕事で使用させてもらっています。<br>で一部バイナリなファイルなども扱うことがあるのですが、<br>そういったデータでもカット＆ペーストで扱うことができなくなるのは非常に困ります。<br>&gt;&gt;dev:4244 みくさん提案 クリップボード形式を指定して貼り付け<br>を取り込むまでは仕様の変更は待ってもらえないでしょうか。<br></div></section>
    <ul><li><section><h1 id=3956>
    <span class="no">[3956]</span>
    <a class="thread-title" href="#3956">Re8:クリップボード UNICODE TEXT 対応</a>
    <span class="author">もか</span>
    <time datetime="2005-06-18T21:15:45">2005年06月18日 21:15</time></h1>
    <div class="body">&gt;で一部バイナリなファイルなども扱うことがあるのですが、<br>&gt;そういったデータでもカット＆ペーストで扱うことができなくなるのは非常に困ります。<br>補足説明しますと、サクラエディタからサクラエディタにカット＆ペーストする場合は、Unicode対応しても従来通りのバイナリー形式が扱えます。<br>あと、現在の実装でも他のソフトウェアからのバイナリーデータを貼り付けるとナル文字以降が切れますので注意が必要です。<br>　Uchiさんの場合は、前者だと思うのですが、他のソフトから貼り付けてるとなると、困りますね。<br></div></section>
    </li></ul></li></ul></li><li><section><h1 id=3963>
    <span class="no">[3963]</span>
    <a class="thread-title" href="#3963">Re6:クリップボード UNICODE TEXT 対応</a>
    <span class="author">げんた</span>
    <time datetime="2005-06-27T02:35:02">2005年06月27日 02:35</time></h1>
    <div class="body">2つほど質問です．<br><br>UnicodeからSJISに変換する時にcmemUnicodeという一時変数で変換してからcmemBufにコピーしていますが，<br>cmemBufにUnicodeのまま設定してUnicodeToSJIS()を呼べばいいのでは？<br><br>SetDataSz()だと\0までを取り出しますが，Unicodeからの変換も含めてそれ以外の部分では長さを指定しているので\0を含んでいても処理できるように見えますから，ここで無理に\0までにしなくてもと思います．<br>あと，SJISに変換できない文字列が入っているとそこはUnicodeのまま残ってしまうようなので，Unicode表現で0を含むものがあるとそこで文字列が切れてしまう可能性があるのでは？(変なものが入っている時点でそれ以降は正しく処理できない可能性が高いですが)<br>もう1つ．一般掲示板3306(2003/09/18)でCF_LOCALEについて言及されていますが，これは今回の問題とは関係ないのでしょうか．<br></div></section>
    <ul><li><section><h1 id=3965>
    <span class="no">[3965]</span>
    <a class="thread-title" href="#3965">Re7:クリップボード UNICODE TEXT 対応</a>
    <span class="author">novice</span>
    <time datetime="2005-07-02T13:23:16">2005年07月02日 13:23</time></h1>
    <div class="body">▼ げんたさん<br>&gt; UnicodeからSJISに変換する時にcmemUnicodeという一時変数で変換してからcmemBufにコピーしていますが，<br>&gt; cmemBufにUnicodeのまま設定してUnicodeToSJIS()を呼べばいいのでは？<br>下記の通りやってみたのですが、文字列の最後に空白が挿入されました。<br><br>cmemBuf.SetData( lptstr, GlobalSize(lptstr) );<br>cmemBuf.UnicodeToSJIS();<br><br>&gt; SetDataSz()だと\0までを取り出しますが，Unicodeからの変換も含めてそれ以外の部分では長さを指定しているので\0を含んでいても処理できるように見えますから，ここで無理に\0までにしなくてもと思います．<br>上記に関連しますが、SJIS変換後のデータとデータ長の整合が取れてないみたいです。MemUnicodeToSJIS()を一部修正して正しいデータ長を返すようにすれば直るかもしれません。<br><br>&gt; あと，SJISに変換できない文字列が入っているとそこはUnicodeのまま残ってしまうようなので，Unicode表現で0を含むものがあるとそこで文字列が切れてしまう可能性があるのでは？(変なものが入っている時点でそれ以降は正しく処理できない可能性が高いですが)<br>パッチを当てたものをしばらく使ってますが、今のところSJISに変換できないようなデータには遭遇してません。<br>CF_UNICODETEXTにはUnicodeデータが入っているという前提なので、大丈夫だろうと楽観してますが。<br><br>&gt; もう1つ．一般掲示板3306(2003/09/18)でCF_LOCALEについて言及されていますが，これは今回の問題とは関係ないのでしょうか．<br>CLCL(http://www.nakka.com/soft/clcl/)でクリップボードの中身を確認したのですが、CF_UNICODETEXTの中にだけ使えそうなデータが格納されていて、CF_OEMTEXTの中は 3F 3F 3F 3F ... のようなデータが格納されていました。<br>LCMapString()を使えば、正しいデータを取得できるのでしょうか（理解不足です）。<br><br>ということで、もう少し調査してみます。<br></div></section>
    <ul><li><section><h1 id=3967>
    <span class="no">[3967]</span>
    <a class="thread-title" href="#3967">Re8:クリップボード UNICODE TEXT 対応</a>
    <span class="author">げんた</span>
    <time datetime="2005-07-02T15:43:46">2005年07月02日 15:43</time></h1>
    <div class="body">&gt;下記の通りやってみたのですが、文字列の最後に空白が挿入されました。<br>&gt;上記に関連しますが、SJIS変換後のデータとデータ長の整合が取れてないみたいです。<br>了解です．<br><br>ところで，私も試しにやってみたのですがCF_UNICODEの方には日本語が?????に変換されたものが入ってきました．<br>KDE/Cygwinを入れていたのでKonquerでCopyして貼り付けてみました．<br><br>&gt;CF_OEMTEXTの中は 3F 3F 3F 3F<br>という話から察するに，これでも一応期待通りの動作と考えてよろしいですか？<br></div></section>
    <ul><li><section><h1 id=3968>
    <span class="no">[3968]</span>
    <a class="thread-title" href="#3968">Re9:クリップボード UNICODE TEXT 対応</a>
    <span class="author">げんた</span>
    <time datetime="2005-07-02T17:08:17">2005年07月02日 17:08</time></h1>
    <div class="body">&gt;&gt;CF_OEMTEXTの中は 3F 3F 3F 3F<br>読み返してみると，ASCIIは普通にコピーできていて今回のパッチで漢字もコピー可能になるはずだったのですね．<br>KDEのツールからコピーすると??になってしまうのは，CygwinではなくてKDEの問題でしょうか．<br>とりあえず取り込むだけ取り込んでおきます．<br></div></section>
    </li><li><section><h1 id=3969>
    <span class="no">[3969]</span>
    <a class="thread-title" href="#3969">Re9:クリップボード UNICODE TEXT 対応</a>
    <span class="author">もか</span>
    <time datetime="2005-07-02T18:43:56">2005年07月02日 18:43</time></h1>
    <div class="body">すでに新版リリースされてますが、ぶら下げときます。<br>&gt;cmemBuf.SetData( lptstr, GlobalSize(lptstr) );<br>&gt;cmemBuf.UnicodeToSJIS();<br>これだと、最後のNUL文字もコピーと変換に含まれますね。<br>あと、GlobalSizeはHGLOBALを引数に取るので<br> cmemBuf.SetData( lptstr, GlobalSize(hglb) - sizeof(WCHAR) );<br>とすればよさそうですが、確保したサイズ=有効データとは限らない可能性もあるため<br> cmemBuf.SetData( lptstr, wcslen(lpstr) * sizeof(WCHAR) );<br>のほうが個人的にはいいかなと思います。<br><br>Localeに関しては、<br>CF_TEXTにセットして、キーボードレイアウトが英語だと<br>  Unicode,OEM共に貼り付けはダメ。<br>OEMにセットして、キーボードレイアウトが英語だと<br>  Unicode,Text共に貼り付けはダメ。(sakura/キーボード英語でコピー、メモ帳貼り付け等)<br>Unicode,Textにセット、キーボードレイアウトが英語だと<br>  OEM共に貼り付けはダメ。(Mozillaからsakuraに貼り付けるパターン)<br>というように、コピーした側で、データを設定していないフォーマットは、<br>コピー側のキーボードレイアウトと連動している文字コード以外の文字が<br>基本的に化けるようです。<br>　ただしCF_TEXTにEUC-JPでデータをセットして、CF_OEM/CF_UNICODEが化けるのは、そもそもCF_TEXTに問題があるとしか言えません。<br><br># 現行ログ以前は、INCMで拾えないので、過去ログ更新お願いしたいです。<br></div></section>
    </li></ul></li><li><section><h1 id=3991>
    <span class="no">[3991]</span>
    <a class="thread-title" href="#3991">Re8:クリップボード UNICODE TEXT 対応</a>
    <span class="author">novice</span>
    <time datetime="2005-07-23T20:28:12">2005年07月23日 20:28</time></h1>
    <div class="body">▼ noviceさん<br>&gt; ▼ げんたさん<br>&gt; &gt; UnicodeからSJISに変換する時にcmemUnicodeという一時変数で変換してからcmemBufにコピーしていますが，<br>&gt; &gt; cmemBufにUnicodeのまま設定してUnicodeToSJIS()を呼べばいいのでは？<br>&gt; 下記の通りやってみたのですが、文字列の最後に空白が挿入されました。<br>&gt; <br>&gt; cmemBuf.SetData( lptstr, GlobalSize(lptstr) );<br>&gt; cmemBuf.UnicodeToSJIS();<br><br>上記の処理でも動作するようにしました。<br>CMemory::MemUnicodeToSJIS()のところで、ワイド文字の終端まで変換するようにしています。<br><br>それと、間違って「#include "my_icmp.h"」をコメントアウトしてしまったので戻しました。<br><br>変更対象ファイル<br>ssrc_2005-07-20.tar.bz2<br><br>差分ファイル<br>diff_ssrc_2005-07-20.zip<br></div></section>
    </li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></body></html>